﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.OleDb;
using DTO;
using DAO;
using BUS;

namespace QL_xxx
{
    /// <summary>
    /// Interaction logic for SuaSanPham.xaml
    /// </summary>
    public partial class SuaSanPham : Window
    {
        public event OnSuaSanPhamThanhCong onSuaSpThanhCong;
        public event OnNhapXuatSPThanCong onNhapXuatThanhCong;
        private int maSP;

        public int MaSP
        {
            get { return maSP; }
            set { maSP = value; }
        }
        private string tenSP;

        public string TenSP
        {
            get { return tenSP; }
            set { tenSP = value; }
        }
        private int soLuong;

        public int SoLuong
        {
            get { return soLuong; }
            set { soLuong = value; }
        }
        private int donGia;

        public int DonGia
        {
            get { return donGia; }
            set { donGia = value; }
        }
        public SuaSanPham(int _maSP, string _tenSP, int _soLuong, int _donGia)
        {
            this.InitializeComponent();
            SoLuong = _soLuong;
            TenSP = _tenSP;
            MaSP = _maSP;
            DonGia = _donGia;
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            txtTenSP.Text = TenSP;
            txtSoLuong.Text = SoLuong.ToString();
            txtDonGia.Text = DonGia.ToString();

            errorTen.Text = "OK";
            errorTen.Foreground = Brushes.Green;

            errorGia.Text = "OK";
            errorGia.Foreground = Brushes.Green;
        }

        private void txtTenSP_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (txtTenSP.Text.Trim().Length == 0)
            {
                errorTen.Foreground = Brushes.Red;
                errorTen.Text = "Bạn phải điền tên sản phẩm vào đây.";
            }
            else
            {
                errorTen.Text = "OK";
                errorTen.Foreground = Brushes.Green; ;
            }
        }

        private void errorTen_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (string.Compare(errorTen.Text, "OK") == 0 && string.Compare(errorGia.Text, "OK") == 0)
                btnLuu.IsEnabled = true;
            else
                btnLuu.IsEnabled = false;
        }

        private void btnHuy_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBoxResult.Yes == MessageBox.Show("Bạn có chắc muốn thoát, thông tin sẽ không được lưu!", "Thông báo.", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No))
                this.Close();
        }
        private void txtDonGia_TextChanged(object sender, TextChangedEventArgs e)
        {
            int n = 0;
            if (txtDonGia.Text.Trim().Length == 0)
            {
                errorGia.Foreground = Brushes.Red;
                errorGia.Text = "Bạn phải điền giá sản phẩm vào đây.";
            }
            else
                if (!int.TryParse(txtDonGia.Text, out n))
                {
                    errorGia.Foreground = Brushes.Red;
                    errorGia.Text = "Đơn giá phải là số nguyên.";
                }
                else
                {
                    errorGia.Text = "OK";
                    errorGia.Foreground = Brushes.Green; ;
                }
        }

        private void errorGia_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (string.Compare(errorTen.Text, "OK") == 0 && string.Compare(errorGia.Text,"OK") == 0)
                btnLuu.IsEnabled = true;
            else
                btnLuu.IsEnabled = false;
        }
        private void btnLuu_Click(object sender, RoutedEventArgs e)
        {
            SanPhamDTO sp = new SanPhamDTO();
            sp.MaSanPham = maSP;
            sp.TenSanPham = txtTenSP.Text;
            sp.SoLuongTrongKho = int.Parse(txtSoLuong.Text);
            sp.GiaSanPham = int.Parse(txtDonGia.Text);
            int kq = SanPhamBUS.SuaThongTinSanPham(sp);

            switch (kq)
            {
                case SanPhamBUS.trungTen:
                    {
                        MessageBox.Show("Tên sản phẩm này đã tồn tại, hãy nhập tên khác", "Lỗi", MessageBoxButton.OK, MessageBoxImage.Error);
                        break;
                    }
                case SanPhamBUS.thatBai:
                    {
                        MessageBox.Show("Lỗi chưa xác định, vui lòng liên hệ nhà cung cấp.", "Lỗi", MessageBoxButton.OK, MessageBoxImage.Error);
                        break;
                    }
                case SanPhamBUS.thanhCong:
                    {
                        MessageBox.Show("Đã sửa.", "Sửa thành công", MessageBoxButton.OK, MessageBoxImage.Information);

                        onSuaSpThanhCong();
                        this.Close();
                        break;
                    }
            }
        }

        private void btnNhapSP_Click(object sender, RoutedEventArgs e)
        {
            NhapXuatSP nx = new NhapXuatSP(NhapXuatSP.nhap, MaSP);
            nx.onthanhCong += new OnNhapXuatSPThanCong(nx_onthanhCong);
            nx.ShowDialog();
        }
        private void btnXuatSP_Click(object sender, RoutedEventArgs e)
        {
            NhapXuatSP nx = new NhapXuatSP(NhapXuatSP.xuat, MaSP);
            nx.onthanhCong += new OnNhapXuatSPThanCong(nx_onthanhCong);
            nx.ShowDialog();
        }
        void nx_onthanhCong()
        {
            SoLuong = SanPhamBUS.LayDSSanPham(MaSP)[0].SoLuongTrongKho;
            txtSoLuong.Text = SoLuong.ToString();
            onNhapXuatThanhCong();
        }






    }
}